#define READONLY			"r"
#define WRITE				"w"
#define APPEND				"a"
#define BAUDRATE9600		"9600"
#define COM_1				"COM1"
#define COM_2				"COM2"
#define COM_3				"COM3"
#define COM_4				"COM4"

//structure for mouse events
struct mouseData{
	double offsetStageMatchX, offsetStageMatchY;
	double scanMatchPixSize;
	double camMatchPixSize;
	int oldX, oldY;
	int pixOffSetX, pixOffSetY;
	HMODULE m_hLibHR3;
	double resize;
};

//define for template magnifaction
#define TEMPL5				5.0

//Begin defines for pixelsizes-----------------------------------------------------------------------

//static value for pixels reference scan
#define REFSCANMAG	40.0
//pixel sizes for the big tiff being used
#define REFPIXSIZEMU40		0.16

//pixel sizes for magnification from Zeiss AxioPlan 2
#define CAMSCANMAG 40.0
#define TEMPLPIXSIZEMU40	0.2567211475341025
#define TEMPLPIXSIZEMU20	0.513442295068205
#define TEMPLPIXSIZEMU10	1.02688459013641
#define TEMPLPIXSIZEMU5		2.05376918027282
#define TEMPLPIXSIZEMU2DOT5	4.10753836054564
//pixel sizes for the big tiff being used
//#define REFPIXSIZEMU40		0.16
#define REFPIXSIZEMU20		0.32
#define REFPIXSIZEMU10		0.64
#define REFPIXSIZEMU5		1.28
//this is actually 2.5x magnification but I dont want to display it as 25 (could be confused as 25x)
#define REFPIXSIZEMU2		2.56 
//this would actually be 1.25x magnification but I dont want to display it as 12 or 125 (could be confusing)
//only available through software means for image scaling
#define REFPIXSIZEMU1		5.12
//this would actually be 0.625x magnification (only available through software means for image scaling)
#define REFPIXSIZEMU0625	10.24 
//this would actually be 0.3125x magnification (only available through software means for image scaling)
#define REFPIXSIZEMU03125	20.48
//End defines for pixelsizes-------------------------------------------------------------------------

//Begin defines for library labels-------------------------------------------------------------------

//define for serial manager library label
#define SERIALMANAGERLIB	"SerialManager"
//define for Zeiss AxioPlan library label
#define ZEISSLIB			"ZeissCAN"
//define for Ludl library label
#define LUDLLIB				"Ludl"
//End defines for library labels---------------------------------------------------------------------

//Begin defines for device labels--------------------------------------------------------------------

//AxioPlan 2 COM Port label
#define ZEISSCOM			"ZeissPort"
//Ludl COM Port label
#define LUDLCOM				"LudlPort"
//Axioplan 2 label
#define AXIOPLAN2			"AxioPlan2"
//Objective turret label
#define OBJECTIVE_TURRET	"AxioTurret"
//AxioPlan 2 Z-Drive label
#define ZDRIVE				"AxioZDrive"
//Ludl MAC5000 CONTROLLER label(needed to be able to use serial communications)
#define LUDLCONTROLLER		"LudlController"
//Ludl MAC5000 XY Stage label
#define MACXYSTAGE			"Mac5000XYStage"
//End defines for device labels----------------------------------------------------------------------

//Begin defines window names-------------------------------------------------------------------------

//Result window
#define RESULT_WINDOW		"Result"
//Template window
#define TEMPLATE_WINDOW		"Template"
//Camera window
#define CAMERA_WINDOW		"Camera"
//End defines window names---------------------------------------------------------------------------

//Begin micro-manager defines------------------------------------------------------------------------

//2.5x objective
#define OBJECTIVE2DOT5X		"0"
//5x objective
#define OBJECTIVE5X			"1"
//5x objective
#define OBJECTIVE10X		"2"
//5x objective
#define OBJECTIVE20X		"3"
//5x objective
#define OBJECTIVE40X		"4"
//End micro-manager defines--------------------------------------------------------------------------
